package com.semis.common.enums;

import java.util.Arrays;
import java.util.List;

/**
 * 系统用到的设备类型
 */
public enum DeviceType {
    /**
     * 网关设备
     */
    GATEWAY("gateway", null),

    /**
     * 读取数据的网关，仅对接静电接地线
     */
    GATEWAY_R("gatewayR", null),
    /**
     * 声光报警灯
     */
    LIGHT("light", Arrays.asList("status", "volume", "music", "playmode")),
    /**
     * 人体静电释放仪
     */
    ELE_IO("eleio", Arrays.asList("release")),
    /**
     * LED灯
     */
    LED("led", Arrays.asList("status", "no", "screen")),
    /**
     * 摄像头
     */
    CAMERA("camera", null);

    /**
     * 设备类型的code， 这里和网关配置的code一致
     */
    private final String code;
    /**
     * 设备的所有配置的变量名称列表
     */
    private final List<String> vars;

    /**
     * 构造方法
     *
     * @param code
     * @param vars
     */
    DeviceType(String code, List<String> vars) {
        this.code = code;
        this.vars = vars;
    }

    /**
     * 根据val获取枚举信息
     *
     * @param code 枚举的值
     * @return
     */
    public DeviceType getEnum(String code) {
        for (DeviceType cmd : DeviceType.values()) {
            if (code.equals(cmd.getCode())) {
                return cmd;
            }
        }
        return null;
    }

    public String getCode() {
        return code;
    }

    public List<String> getVars() {
        return vars;
    }
}
